﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using acessaDB;
using Frame;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using Estrutura;


namespace Banco
{

    /// <summary>
    /// Summary description for BD_bolsa
    /// </summary>
    public class BD_bolsa
    {
        #region variaveis_globais

        acessaDB.conectaDBMSSQLServer sqlServer = new conectaDBMSSQLServer();
        string conectionString = System.Configuration.ConfigurationManager.AppSettings["SQLServerConnectionLocal"];
        string usuario = string.Empty;

        #endregion

        #region construtor

        public BD_bolsa()
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["SQLServerConnectionProd"];
        }
        public BD_bolsa(string usu_Login)
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["SQLServerConnectionProd"];
            usuario = usu_Login;
        }

        #endregion

        #region metodos

        public System.Data.DataSet _retorna_bolsa(
                                                string BOLSA_ID,
                                                string BOL_DESCRICAO,
                                                string BOL_MODALIDADE,
                                                string BOL_DESCONTOVALOR,
                                                string BOL_DESCONTOPERC,
                                                string BOL_DTVIGENCIAINCIO,
                                                string BOL_DTVIGENCIAFIM,
                                                string BOL_STEXCLUIDO
                                                )
        {

            if (string.IsNullOrEmpty(BOLSA_ID)) BOLSA_ID = "''";
            if (string.IsNullOrEmpty(BOL_DESCRICAO)) BOL_DESCRICAO = "''";
            if (string.IsNullOrEmpty(BOL_MODALIDADE)) BOL_MODALIDADE = "''";
            if (string.IsNullOrEmpty(BOL_DESCONTOVALOR)) BOL_DESCONTOVALOR = "''";
            if (string.IsNullOrEmpty(BOL_DESCONTOPERC)) BOL_DESCONTOPERC = "''";
            if (string.IsNullOrEmpty(BOL_DTVIGENCIAINCIO)) BOL_DTVIGENCIAINCIO = "''";
            if (string.IsNullOrEmpty(BOL_DTVIGENCIAFIM)) BOL_DTVIGENCIAFIM = "''";
            if (string.IsNullOrEmpty(BOL_STEXCLUIDO)) BOL_STEXCLUIDO = "''";

            string sql = "SELECT " +
                                  "BOLSA.BOLSA_ID, " +
                                  "BOLSA.BOL_DESCRICAO, " +
                                  "BOLSA.BOL_MODALIDADE, " +
                                  "BOLSA.BOL_DESCONTOVALOR, " +
                                  "BOLSA.BOL_DESCONTOPERC, " +
                                  "BOLSA.BOL_DTVIGENCIAINCIO, " +
                                  "BOLSA.BOL_DTVIGENCIAFIM, " +
                                  "BOLSA.BOL_STEXCLUIDO " +
                            "FROM BOLSA " +
                            "WHERE " +
                            "      (BOLSA.BOLSA_ID = " + BOLSA_ID + "  OR " + BOLSA_ID + " = '') AND " +
                            "      (BOLSA.BOL_DESCRICAO = " + BOL_DESCRICAO + "  OR " + BOL_DESCRICAO + " = '') AND " +
                            "      (BOLSA.BOL_MODALIDADE = " + BOL_MODALIDADE + "  OR " + BOL_MODALIDADE + " = '') AND " +
                            "      (BOLSA.BOL_DESCONTOVALOR = " + BOL_DESCONTOVALOR + "  OR " + BOL_DESCONTOVALOR + " = '') AND " +
                            "      (BOLSA.BOL_DESCONTOPERC = " + BOL_DESCONTOPERC + "  OR " + BOL_DESCONTOPERC + " = '') AND " +
                            "      (BOLSA.BOL_DTVIGENCIAINCIO = " + BOL_DTVIGENCIAINCIO + "  OR " + BOL_DTVIGENCIAINCIO + " = '') AND " +
                            "      (BOLSA.BOL_DTVIGENCIAFIM = " + BOL_DTVIGENCIAFIM + "  OR " + BOL_DTVIGENCIAFIM + " = '') AND " +
                            "      (BOLSA.BOL_STEXCLUIDO = " + BOL_STEXCLUIDO + "  OR " + BOL_STEXCLUIDO + " = '') ";

            return sqlServer.retornaDataSet(sql, conectionString);;
            

        }


        public List<ES_bolsa> _obter_bolsa(
                                                string BOLSA_ID,
                                                string BOL_DESCRICAO,
                                                string BOL_MODALIDADE,
                                                string BOL_DESCONTOVALOR,
                                                string BOL_DESCONTOPERC,
                                                string BOL_DTVIGENCIAINCIO,
                                                string BOL_DTVIGENCIAFIM,
                                                string BOL_STEXCLUIDO,
                                                string BOL_INTEGRAL
                                                )
        {

            if (string.IsNullOrEmpty(BOLSA_ID)) BOLSA_ID = "0";
            if (string.IsNullOrEmpty(BOL_DESCRICAO)) BOL_DESCRICAO = "''"; else BOL_DESCRICAO = Util.retonarAspas(BOL_DESCRICAO + "%");
            if (string.IsNullOrEmpty(BOL_MODALIDADE)) BOL_MODALIDADE = "''"; else BOL_MODALIDADE = Util.retonarAspas(BOL_MODALIDADE + "%");
            if (string.IsNullOrEmpty(BOL_DESCONTOVALOR)) BOL_DESCONTOVALOR = "0";
            if (string.IsNullOrEmpty(BOL_DESCONTOPERC)) BOL_DESCONTOPERC = "0"; 
            if (!string.IsNullOrEmpty(BOL_DTVIGENCIAINCIO)) BOL_DTVIGENCIAINCIO = Util.retonarAspas(Util.formataData(BOL_DTVIGENCIAINCIO,"dd/MM/yyyy"));
            if (!string.IsNullOrEmpty(BOL_DTVIGENCIAFIM)) BOL_DTVIGENCIAFIM = Util.retonarAspas(Util.formataData(BOL_DTVIGENCIAFIM, "dd/MM/yyyy"));            
            if (string.IsNullOrEmpty(BOL_STEXCLUIDO)) BOL_STEXCLUIDO = "-1";
            if (string.IsNullOrEmpty(BOL_INTEGRAL)) BOL_INTEGRAL = "-1";

            string sql = "SELECT " +
                                  "BOLSA.BOLSA_ID, " +
                                  "BOLSA.BOL_DESCRICAO, " +
                                  "BOLSA.BOL_MODALIDADE, " +
                                  "BOLSA.BOL_DESCONTOVALOR, " +
                                  "BOLSA.BOL_DESCONTOPERC, " +
                                  "BOLSA.BOL_DTVIGENCIAINCIO, " +
                                  "BOLSA.BOL_DTVIGENCIAFIM, " +
                                  "BOLSA.BOL_STEXCLUIDO, " +
                                  "BOLSA.BOL_INTEGRAL " +
                            "FROM BOLSA " +
                            "WHERE " +
                            "      (BOLSA.BOLSA_ID = " + BOLSA_ID + "  OR " + BOLSA_ID + " = 0) AND " +
                            "      (BOLSA.BOL_DESCRICAO LIKE " + BOL_DESCRICAO + "  OR " + BOL_DESCRICAO + " = '') AND " +
                            "      (BOLSA.BOL_MODALIDADE LIKE " + BOL_MODALIDADE + "  OR " + BOL_MODALIDADE + " = '') AND " +
                            "      (BOLSA.BOL_DESCONTOVALOR = " + BOL_DESCONTOVALOR + "  OR " + BOL_DESCONTOVALOR + " = 0) AND " +
                            "      (BOLSA.BOL_DESCONTOPERC = " + BOL_DESCONTOPERC + "  OR " + BOL_DESCONTOPERC + " = 0) AND ";
            
            if (!string.IsNullOrEmpty(BOL_DTVIGENCIAINCIO))
                sql += "      (BOLSA.BOL_DTVIGENCIAINCIO = " + BOL_DTVIGENCIAINCIO + ") AND ";
            if (!string.IsNullOrEmpty(BOL_DTVIGENCIAFIM))
                sql += "      (BOLSA.BOL_DTVIGENCIAFIM = " + BOL_DTVIGENCIAFIM + ") AND ";

            sql +=          "      (BOLSA.BOL_STEXCLUIDO = " + BOL_STEXCLUIDO + "  OR " + BOL_STEXCLUIDO + " = -1) AND "+
                            "      (BOLSA.BOL_INTEGRAL = " + BOL_STEXCLUIDO + "  OR " + BOL_STEXCLUIDO + " = -1) ";


            List<ES_bolsa> lista = new List<ES_bolsa>();
            SqlConnection sqlConexao = new SqlConnection(conectionString);
            SqlDataReader dr = sqlServer.retornaDataReader(sql, conectionString, sqlConexao);
            try
            {
                while (dr.Read())
                {
                    ES_bolsa item = new ES_bolsa();
                    item.BOLSA_ID = dr["BOLSA_ID"].ToString();
                    item.BOL_DESCRICAO = dr["BOL_DESCRICAO"].ToString();
                    item.BOL_MODALIDADE = dr["BOL_MODALIDADE"].ToString();
                    item.BOL_DESCONTOVALOR = dr["BOL_DESCONTOVALOR"].ToString();
                    item.BOL_DESCONTOPERC = dr["BOL_DESCONTOPERC"].ToString();                    
                    item.BOL_DTVIGENCIAINCIO = Util.formataData(dr["BOL_DTVIGENCIAINCIO"].ToString(), "dd/MM/yyyy", true);
                    item.BOL_DTVIGENCIAFIM = Util.formataData(dr["BOL_DTVIGENCIAFIM"].ToString(), "dd/MM/yyyy", true);
                    item.BOL_STEXCLUIDO = ((dr["BOL_STEXCLUIDO"].ToString() == "1") ? true : false);
                    item.BOL_INTEGRAL = ((dr["BOL_INTEGRAL"].ToString() == "1") ? true : false);
                    lista.Add(item);

                }
                return lista;
            }
            finally
            {
                sqlServer.fecharConexao(sqlConexao);
            }
        }


        public List<ES_bolsa_modalidade> _obter_bolsa_modalidade()
        {
            List<ES_bolsa_modalidade> lista = new List<ES_bolsa_modalidade>();
       
            try
            {
                string vMod = "Bolsa;Desconto;Outros";
                string[] arrayMod = vMod.Split(';');

                foreach (string myStr in arrayMod)
                {
                    ES_bolsa_modalidade item = new ES_bolsa_modalidade();
                    item.BOL_MODALIDADE = myStr.Substring(0,1);
                    item.BOL_MODALIDADEDESC = myStr;
                    
                    lista.Add(item);

                }
                return lista;
            }
            finally{}
        }

        public ES_bolsa _obter_bolsa_by_id(
                                                string BOLSA_ID
                                                )
        {

            if (string.IsNullOrEmpty(BOLSA_ID)) BOLSA_ID = "'0'";

            string sql = "SELECT " +
                                  "BOLSA.BOLSA_ID, " +
                                  "BOLSA.BOL_DESCRICAO, " +
                                  "BOLSA.BOL_MODALIDADE, " +
                                  "BOLSA.BOL_DESCONTOVALOR, " +
                                  "BOLSA.BOL_DESCONTOPERC, " +
                                  "BOLSA.BOL_DTVIGENCIAINCIO, " +
                                  "BOLSA.BOL_DTVIGENCIAFIM, " +
                                  "BOLSA.BOL_STEXCLUIDO, " +
                                  "BOLSA.BOL_INTEGRAL "+
                            "FROM BOLSA " +
                            "WHERE " +
                            "      (BOLSA.BOLSA_ID = " + BOLSA_ID + "  OR " + BOLSA_ID + " = '0') ";

            ES_bolsa item = new ES_bolsa();
            SqlConnection sqlConexao = new SqlConnection(conectionString);
            SqlDataReader dr = sqlServer.retornaDataReader(sql, conectionString, sqlConexao);
            try
            {
                while (dr.Read())
                {
                    item.BOLSA_ID = dr["BOLSA_ID"].ToString();
                    item.BOL_DESCRICAO = dr["BOL_DESCRICAO"].ToString();
                    item.BOL_MODALIDADE = dr["BOL_MODALIDADE"].ToString();
                    item.BOL_DESCONTOVALOR = dr["BOL_DESCONTOVALOR"].ToString();
                    item.BOL_DESCONTOPERC = dr["BOL_DESCONTOPERC"].ToString();
                    item.BOL_DTVIGENCIAINCIO = dr["BOL_DTVIGENCIAINCIO"].ToString();
                    item.BOL_DTVIGENCIAFIM = dr["BOL_DTVIGENCIAFIM"].ToString();
                    item.BOL_STEXCLUIDO = ((dr["BOL_STEXCLUIDO"].ToString() == "1") ? true : false);
                    item.BOL_INTEGRAL = ((dr["BOL_INTEGRAL"].ToString() == "1") ? true : false);


                }
                return item;
            }
            finally
            {
                sqlServer.fecharConexao(sqlConexao);
            }
        }


        public void _inserir_bolsa(
                                                string BOLSA_ID,
                                                string BOL_DESCRICAO,
                                                string BOL_MODALIDADE,
                                                string BOL_DESCONTOVALOR,
                                                string BOL_DESCONTOPERC,
                                                string BOL_DTVIGENCIAINCIO,
                                                string BOL_DTVIGENCIAFIM,
                                                bool BOL_STEXCLUIDO,
                                                bool BOL_INTEGRAL
                                                )
        {

            string sql = " INSERT INTO BOLSA " +
                         "      ( " +
                         "          BOL_DESCRICAO, " +
                         "          BOL_MODALIDADE, " +
                         "          BOL_DESCONTOVALOR, " +
                         "          BOL_DESCONTOPERC, " +
                         "          BOL_DTVIGENCIAINCIO, " +
                         "          BOL_DTVIGENCIAFIM, " +
                         "          BOL_STEXCLUIDO,  " +
                         "          BOL_INTEGRAL  " +
                 "      )" +
                 "  VALUES " +
                 "      ( " +
                              Util.retonarAspas(BOL_DESCRICAO, true) + ", " +
                              Util.retonarAspas(BOL_MODALIDADE, true) + ", " +
                              Util.retonarNull(BOL_DESCONTOVALOR) + ", " +
                              Util.retonarNull(BOL_DESCONTOPERC) + ", " +
                              Util.retonarAspas(Util.formataData(BOL_DTVIGENCIAINCIO, "dd/MM/yyyy", true), true) + ", " +
                              Util.retonarAspas(Util.formataData(BOL_DTVIGENCIAFIM, "dd/MM/yyyy", true), true) + ", " +                              
                              ((BOL_STEXCLUIDO == true) ? "1" : "0") + ", " +
                              ((BOL_INTEGRAL == true) ? "1" : "0") +
                 "      )";
            try
            {
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _atualizar_bolsa(
                                                string BOLSA_ID,
                                                string BOL_DESCRICAO,
                                                string BOL_MODALIDADE,
                                                string BOL_DESCONTOVALOR,
                                                string BOL_DESCONTOPERC,
                                                string BOL_DTVIGENCIAINCIO,
                                                string BOL_DTVIGENCIAFIM,
                                                bool BOL_STEXCLUIDO,
                                                bool BOL_INTEGRAL
                                                )
        {

            string sql = " UPDATE BOLSA SET " +
                         "      BOL_DESCRICAO = " + Util.retonarAspas(BOL_DESCRICAO, true) + ", " +
                         "      BOL_MODALIDADE = " + Util.retonarAspas(BOL_MODALIDADE, true) + ", " +
                         "      BOL_DESCONTOVALOR = " + Util.retonarAspas(BOL_DESCONTOVALOR, true) + ", " +
                         "      BOL_DESCONTOPERC = " + Util.retonarAspas(BOL_DESCONTOPERC, true) + ", " +
                         "      BOL_DTVIGENCIAINCIO = " + Util.retonarAspas(Util.formataData(BOL_DTVIGENCIAINCIO, "dd/MM/yyyy", true), true) + ", " +
                         "      BOL_DTVIGENCIAFIM = " + Util.retonarAspas(Util.formataData(BOL_DTVIGENCIAFIM, "dd/MM/yyyy", true), true) + ", " +
                         "      BOL_STEXCLUIDO = " + ((BOL_STEXCLUIDO == true) ? "1" : "0") + ", " +
                         "      BOL_INTEGRAL = " + ((BOL_INTEGRAL == true) ? "1" : "0") +
                         " WHERE BOLSA_ID =  " + BOLSA_ID;
            try
            {
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _excluir_bolsa(string BOLSA_ID)
        {
            string sql = "DELETE FROM BOLSA WHERE BOLSA_ID = " + BOLSA_ID;
            try
            {
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        #endregion
    }
}